package com.springboot.logback.utils;

/**
 * neu
 * 2019/7/29 9:44
 *
 * @Version : 1.0
 * @Description :
 */
public interface ILogger {

    public void trace(String msg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void trace(String msg, Object arg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void trace(String msg, Object arg1, Object arg2);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void trace(String msg, Object... arguments);

    public void trace(String msg, Throwable t);

    public void trace(Throwable t);

    public void debug(String msg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void debug(String msg, Object arg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void debug(String msg, Object arg1, Object arg2);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void debug(String msg, Object... arguments);

    public void debug(String msg, Throwable t);

    public void debug(Throwable t);

    public void info(String msg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void info(String msg, Object arg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void info(String msg, Object arg1, Object arg2);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void info(String msg, Object... arguments);

    public void info(String msg, Throwable t);

    public void info(Throwable t);

    public void warn(String msg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void warn(String msg, Object arg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void warn(String msg, Object... arguments);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void warn(String msg, Object arg1, Object arg2);

    public void warn(String msg, Throwable t);

    public void warn(Throwable t);

    public void error(String msg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void error(String msg, Object arg);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void error(String msg, Object arg1, Object arg2);

    /**
     * msg参数中可以使用个占位符{}，比如test{},arg参数会一次替换{}
     *
     * @author
     * @param
     * @return
     */
    public void error(String msg, Object... arguments);

    public void error(String msg, Throwable t);

    public void error(Throwable t);

    public boolean isTraceEnabled();

    public boolean isDebugEnabled();

    public boolean isInfoEnabled();

    public boolean isWarnEnabled();

    public boolean isErrorEnabled();

}
